﻿using System;
using System.Collections.Generic;
using eCommMongo.Core.Domain.Addresses;
using eCommMongo.Core.Domain.Customers;
using eCommMongo.Core.Domain.Payments;
using eCommMongo.Core.Domain.Shippings;
using eCommMongo.Core.Domain.Shops;

namespace eCommMongo.Core.Domain.Orders
{
    public class Order:BaseMongoEntity
    {

        public virtual Shop Shop { get; set; }
     
        public virtual Customer Customer { get; set; }

        public virtual Guid OrderGuid { get; set; }


        public virtual decimal OrderShippingPrice { get; set; }

        public virtual decimal OrderTotal { get; set; }

        public virtual decimal RefundedAmount { get; set; }

        public virtual OrderStatus OrderStatus { get; set; }

        public virtual PaymentStatus PaymentStatus { get; set; }

        public virtual ShippingStatus ShippingStatus { get; set; }

        public virtual string PaymentMethodSystemName { get; set; }
     
        public  virtual DateTime? PaidDateUtc { get; set; }

        public  virtual Address ShippingAddress { get; set; }

        public  virtual DateTime CreatedOnUtc { get; set; }

        public virtual bool Deleted { get; set; }   
        
        public virtual ICollection<OrderProductVariant> OrderProductVariants { get; set; }


    }
}